home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 14 / CU Amiga Magazine's Super CD-ROM 14 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-09].iso / CUCD / Programming / Mesa-2.2 / src / pointers.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-13  |  17.7 KB  |  471 lines

  1. /* $Id: pointers.c,v 1.4 1997/02/10 19:49:29 brianp Exp $ */
  2.  
  3. /*
  4.  * Mesa 3-D graphics library
  5.  * Version:  2.2
  6.  * Copyright (C) 1995-1997  Brian Paul
  7.  *
  8.  * This library is free software; you can redistribute it and/or
  9.  * modify it under the terms of the GNU Library General Public
  10.  * License as published by the Free Software Foundation; either
  11.  * version 2 of the License, or (at your option) any later version.
  12.  *
  13.  * This library is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * Library General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Library General Public
  19.  * License along with this library; if not, write to the Free
  20.  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22.  
  23.  
  24. /*
  25.  * $Log: pointers.c,v $
  26.  * Revision 1.4  1997/02/10 19:49:29  brianp
  27.  * added glResizeBuffersMESA() code
  28.  *
  29.  * Revision 1.3  1997/02/09 18:50:42  brianp
  30.  * added GL_EXT_texture3D support
  31.  *
  32.  * Revision 1.2  1996/10/16 00:52:22  brianp
  33.  * gl_initialize_api_function_pointers() now gl_init_api_function_pointers()
  34.  *
  35.  * Revision 1.1  1996/09/13 01:38:16  brianp
  36.  * Initial revision
  37.  *
  38.  */
  39.  
  40.  
  41. #include <stdio.h>
  42. #include <stdlib.h>
  43. #include <string.h>
  44. #include "accum.h"
  45. #include "alpha.h"
  46. #include "attrib.h"
  47. #include "bitmap.h"
  48. #include "blend.h"
  49. #include "clip.h"
  50. #include "context.h"
  51. #include "copypix.h"
  52. #include "depth.h"
  53. #include "draw.h"
  54. #include "drawpix.h"
  55. #include "enable.h"
  56. #include "eval.h"
  57. #include "feedback.h"
  58. #include "fog.h"
  59. #include "get.h"
  60. #include "light.h"
  61. #include "lines.h"
  62. #include "dlist.h"
  63. #include "logic.h"
  64. #include "macros.h"
  65. #include "masking.h"
  66. #include "matrix.h"
  67. #include "misc.h"
  68. #include "pixel.h"
  69. #include "points.h"
  70. #include "polygon.h"
  71. #include "readpix.h"
  72. #include "scissor.h"
  73. #include "stencil.h"
  74. #include "teximage.h"
  75. #include "texobj.h"
  76. #include "texture.h"
  77. #include "types.h"
  78. #include "varray.h"
  79. #include "vb.h"
  80. #include "vertex.h"
  81. #include "winpos.h"
  82.  
  83.  
  84.  
  85.  
  86. /*
  87.  * For debugging
  88.  */
  89. static void check_pointers( struct api_function_table *table )
  90. {
  91.    void **entry;
  92.    int numentries = sizeof( struct api_function_table ) / sizeof(void*);
  93.    int i;
  94.  
  95.    entry = (void **) table;
  96.  
  97.    for (i=0;i<numentries;i++) {
  98.       if (!entry[i]) {
  99.          printf("found uninitialized function pointer at %d\n", i );
  100.       }
  101.    }
  102. }
  103.  
  104.  
  105.  
  106. void gl_init_api_function_pointers( GLcontext *ctx )
  107. {
  108.    /*
  109.     * Immediate/execute functions
  110.     */
  111.    ctx->Exec.Accum = gl_Accum;
  112.    ctx->Exec.AlphaFunc = gl_AlphaFunc;
  113.    ctx->Exec.AreTexturesResident = gl_AreTexturesResident;
  114.    ctx->Exec.ArrayElement = gl_ArrayElement;
  115.    ctx->Exec.Begin = gl_Begin;
  116.    ctx->Exec.BindTexture = gl_BindTexture;
  117.    ctx->Exec.Bitmap = gl_Bitmap;
  118.    ctx->Exec.BlendColor = gl_BlendColor;
  119.    ctx->Exec.BlendEquation = gl_BlendEquation;
  120.    ctx->Exec.BlendFunc = gl_BlendFunc;
  121.    ctx->Exec.CallList = gl_CallList;
  122.    ctx->Exec.CallLists = gl_CallLists;
  123.    ctx->Exec.Clear = gl_Clear;
  124.    ctx->Exec.ClearAccum = gl_ClearAccum;
  125.    ctx->Exec.ClearColor = gl_ClearColor;
  126.    ctx->Exec.ClearDepth = gl_ClearDepth;
  127.    ctx->Exec.ClearIndex = gl_ClearIndex;
  128.    ctx->Exec.ClearStencil = gl_ClearStencil;
  129.    ctx->Exec.ClipPlane = gl_ClipPlane;
  130.    ctx->Exec.Color4f = gl_Color4f;
  131.    ctx->Exec.Color4ub = gl_Color4ub;
  132.    ctx->Exec.ColorMask = gl_ColorMask;
  133.    ctx->Exec.ColorMaterial = gl_ColorMaterial;
  134.    ctx->Exec.ColorPointer = gl_ColorPointer;
  135.    ctx->Exec.CopyPixels = gl_CopyPixels;
  136.    ctx->Exec.CopyTexImage1D = gl_CopyTexImage1D;
  137.    ctx->Exec.CopyTexImage2D = gl_CopyTexImage2D;
  138.    ctx->Exec.CopyTexSubImage1D = gl_CopyTexSubImage1D;
  139.    ctx->Exec.CopyTexSubImage2D = gl_CopyTexSubImage2D;
  140.    ctx->Exec.CopyTexSubImage3DEXT = gl_CopyTexSubImage3DEXT;
  141.    ctx->Exec.CullFace = gl_CullFace;
  142.    ctx->Exec.DeleteLists = gl_DeleteLists;
  143.    ctx->Exec.DeleteTextures = gl_DeleteTextures;
  144.    ctx->Exec.DepthFunc = gl_DepthFunc;
  145.    ctx->Exec.DepthMask = gl_DepthMask;
  146.    ctx->Exec.DepthRange = gl_DepthRange;
  147.    ctx->Exec.Disable = gl_Disable;
  148.    ctx->Exec.DisableClientState = gl_DisableClientState;
  149.    ctx->Exec.DrawArrays = gl_DrawArrays;
  150.    ctx->Exec.DrawBuffer = gl_DrawBuffer;
  151.    ctx->Exec.DrawElements = gl_DrawElements;
  152.    ctx->Exec.DrawPixels = gl_DrawPixels;
  153.    ctx->Exec.EdgeFlag = gl_EdgeFlag;
  154.    ctx->Exec.EdgeFlagPointer = gl_EdgeFlagPointer;
  155.    ctx->Exec.Enable = gl_Enable;
  156.    ctx->Exec.EnableClientState = gl_EnableClientState;
  157.    ctx->Exec.End = gl_End;
  158.    ctx->Exec.EndList = gl_EndList;
  159.    ctx->Exec.EvalCoord1f = gl_EvalCoord1f;
  160.    ctx->Exec.EvalCoord2f = gl_EvalCoord2f;
  161.    ctx->Exec.EvalMesh1 = gl_EvalMesh1;
  162.    ctx->Exec.EvalMesh2 = gl_EvalMesh2;
  163.    ctx->Exec.EvalPoint1 = gl_EvalPoint1;
  164.    ctx->Exec.EvalPoint2 = gl_EvalPoint2;
  165.    ctx->Exec.FeedbackBuffer = gl_FeedbackBuffer;
  166.    ctx->Exec.Finish = gl_Finish;
  167.    ctx->Exec.Flush = gl_Flush;
  168.    ctx->Exec.Fogfv = gl_Fogfv;
  169.    ctx->Exec.FrontFace = gl_FrontFace;
  170.    ctx->Exec.Frustum = gl_Frustum;
  171.    ctx->Exec.GenLists = gl_GenLists;
  172.    ctx->Exec.GenTextures = gl_GenTextures;
  173.    ctx->Exec.GetBooleanv = gl_GetBooleanv;
  174.    ctx->Exec.GetClipPlane = gl_GetClipPlane;
  175.    ctx->Exec.GetDoublev = gl_GetDoublev;
  176.    ctx->Exec.GetError = gl_GetError;
  177.    ctx->Exec.GetFloatv = gl_GetFloatv;
  178.    ctx->Exec.GetIntegerv = gl_GetIntegerv;
  179.    ctx->Exec.GetPointerv = gl_GetPointerv;
  180.    ctx->Exec.GetLightfv = gl_GetLightfv;
  181.    ctx->Exec.GetLightiv = gl_GetLightiv;
  182.    ctx->Exec.GetMapdv = gl_GetMapdv;
  183.    ctx->Exec.GetMapfv = gl_GetMapfv;
  184.    ctx->Exec.GetMapiv = gl_GetMapiv;
  185.    ctx->Exec.GetMaterialfv = gl_GetMaterialfv;
  186.    ctx->Exec.GetMaterialiv = gl_GetMaterialiv;
  187.    ctx->Exec.GetPixelMapfv = gl_GetPixelMapfv;
  188.    ctx->Exec.GetPixelMapuiv = gl_GetPixelMapuiv;
  189.    ctx->Exec.GetPixelMapusv = gl_GetPixelMapusv;
  190.    ctx->Exec.GetPolygonStipple = gl_GetPolygonStipple;
  191.    ctx->Exec.GetString = gl_GetString;
  192.    ctx->Exec.GetTexEnvfv = gl_GetTexEnvfv;
  193.    ctx->Exec.GetTexEnviv = gl_GetTexEnviv;
  194.    ctx->Exec.GetTexGendv = gl_GetTexGendv;
  195.    ctx->Exec.GetTexGenfv = gl_GetTexGenfv;
  196.    ctx->Exec.GetTexGeniv = gl_GetTexGeniv;
  197.    ctx->Exec.GetTexImage = gl_GetTexImage;
  198.    ctx->Exec.GetTexLevelParameterfv = gl_GetTexLevelParameterfv;
  199.    ctx->Exec.GetTexLevelParameteriv = gl_GetTexLevelParameteriv;
  200.    ctx->Exec.GetTexParameterfv = gl_GetTexParameterfv;
  201.    ctx->Exec.GetTexParameteriv = gl_GetTexParameteriv;
  202.    ctx->Exec.Hint = gl_Hint;
  203.    ctx->Exec.Indexf = gl_Indexf;
  204.    ctx->Exec.Indexi = gl_Indexi;
  205.    ctx->Exec.IndexMask = gl_IndexMask;
  206.    ctx->Exec.IndexPointer = gl_IndexPointer;
  207.    ctx->Exec.InitNames = gl_InitNames;
  208.    ctx->Exec.InterleavedArrays = gl_InterleavedArrays;
  209.    ctx->Exec.IsEnabled = gl_IsEnabled;
  210.    ctx->Exec.IsList = gl_IsList;
  211.    ctx->Exec.IsTexture = gl_IsTexture;
  212.    ctx->Exec.LightModelfv = gl_LightModelfv;
  213.    ctx->Exec.Lightfv = gl_Lightfv;
  214.    ctx->Exec.LineStipple = gl_LineStipple;
  215.    ctx->Exec.LineWidth = gl_LineWidth;
  216.    ctx->Exec.ListBase = gl_ListBase;
  217.    ctx->Exec.LoadMatrixf = gl_LoadMatrixf;
  218.    ctx->Exec.LoadName = gl_LoadName;
  219.    ctx->Exec.LogicOp = gl_LogicOp;
  220.    ctx->Exec.Map1f = gl_Map1f;
  221.    ctx->Exec.Map2f = gl_Map2f;
  222.    ctx->Exec.MapGrid1f = gl_MapGrid1f;
  223.    ctx->Exec.MapGrid2f = gl_MapGrid2f;
  224.    ctx->Exec.Materialfv = gl_Materialfv;
  225.    ctx->Exec.MatrixMode = gl_MatrixMode;
  226.    ctx->Exec.MultMatrixf = gl_MultMatrixf;
  227.    ctx->Exec.NewList = gl_NewList;
  228.    ctx->Exec.Normal3f = gl_Normal3f;
  229.    ctx->Exec.NormalPointer = gl_NormalPointer;
  230.    ctx->Exec.Normal3fv = gl_Normal3fv;
  231.    ctx->Exec.PassThrough = gl_PassThrough;
  232.    ctx->Exec.PixelMapfv = gl_PixelMapfv;
  233.    ctx->Exec.PixelStorei = gl_PixelStorei;
  234.    ctx->Exec.PixelTransferf = gl_PixelTransferf;
  235.    ctx->Exec.PixelZoom = gl_PixelZoom;
  236.    ctx->Exec.PointSize = gl_PointSize;
  237.    ctx->Exec.PolygonMode = gl_PolygonMode;
  238.    ctx->Exec.PolygonOffset = gl_PolygonOffset;
  239.    ctx->Exec.PolygonStipple = gl_PolygonStipple;
  240.    ctx->Exec.PopAttrib = gl_PopAttrib;
  241.    ctx->Exec.PopClientAttrib = gl_PopClientAttrib;
  242.    ctx->Exec.PopMatrix = gl_PopMatrix;
  243.    ctx->Exec.PopName = gl_PopName;
  244.    ctx->Exec.PrioritizeTextures = gl_PrioritizeTextures;
  245.    ctx->Exec.PushAttrib = gl_PushAttrib;
  246.    ctx->Exec.PushClientAttrib = gl_PushClientAttrib;
  247.    ctx->Exec.PushMatrix = gl_PushMatrix;
  248.    ctx->Exec.PushName = gl_PushName;
  249.    ctx->Exec.RasterPos4f = gl_RasterPos4f;
  250.    ctx->Exec.ReadBuffer = gl_ReadBuffer;
  251.    ctx->Exec.ReadPixels = gl_ReadPixels;
  252.    ctx->Exec.Rectf = gl_Rectf;
  253.    ctx->Exec.RenderMode = gl_RenderMode;
  254.    ctx->Exec.Rotatef = gl_Rotatef;
  255.    ctx->Exec.Scalef = gl_Scalef;
  256.    ctx->Exec.Scissor = gl_Scissor;
  257.    ctx->Exec.SelectBuffer = gl_SelectBuffer;
  258.    ctx->Exec.ShadeModel = gl_ShadeModel;
  259.    ctx->Exec.StencilFunc = gl_StencilFunc;
  260.    ctx->Exec.StencilMask = gl_StencilMask;
  261.    ctx->Exec.StencilOp = gl_StencilOp;
  262.    ctx->Exec.TexCoord4f = gl_TexCoord4f;
  263.    ctx->Exec.TexCoordPointer = gl_TexCoordPointer;
  264.    ctx->Exec.TexEnvfv = gl_TexEnvfv;
  265.    ctx->Exec.TexGenfv = gl_TexGenfv;
  266.    ctx->Exec.TexImage1D = gl_TexImage1D;
  267.    ctx->Exec.TexImage2D = gl_TexImage2D;
  268.    ctx->Exec.TexImage3DEXT = gl_TexImage3DEXT;
  269.    ctx->Exec.TexSubImage1D = gl_TexSubImage1D;
  270.    ctx->Exec.TexSubImage2D = gl_TexSubImage2D;
  271.    ctx->Exec.TexSubImage3DEXT = gl_TexSubImage3DEXT;
  272.    ctx->Exec.TexParameterfv = gl_TexParameterfv;
  273.    ctx->Exec.Translatef = gl_Translatef;
  274.    ctx->Exec.Vertex4f = gl_nop_vertex;          /* FILLED IN LATER */
  275.    ctx->Exec.VertexPointer = gl_VertexPointer;
  276.    ctx->Exec.Viewport = gl_Viewport;
  277.  
  278.    /* Blending extextensions */
  279.  
  280.    /* GL_MESA_window_pos extension */
  281.    ctx->Exec.WindowPos4fMESA = gl_WindowPos4fMESA;
  282.  
  283.    /* GL_MESA_resize_buffers extension */
  284.    ctx->Exec.ResizeBuffersMESA = gl_ResizeBuffersMESA;
  285.  
  286.    /*
  287.     * Display list compile/save functions
  288.     */
  289.    ctx->Save.Accum = gl_save_Accum;
  290.    ctx->Save.AlphaFunc = gl_save_AlphaFunc;
  291.    ctx->Save.AreTexturesResident = gl_AreTexturesResident;
  292.    ctx->Save.ArrayElement = gl_save_ArrayElement;
  293.    ctx->Save.Begin = gl_save_Begin;
  294.    ctx->Save.BindTexture = gl_save_BindTexture;
  295.    ctx->Save.Bitmap = gl_save_Bitmap;
  296.    ctx->Save.BlendColor = gl_save_BlendColor;
  297.    ctx->Save.BlendEquation = gl_save_BlendEquation;
  298.    ctx->Save.BlendFunc = gl_save_BlendFunc;
  299.    ctx->Save.CallList = gl_save_CallList;
  300.    ctx->Save.CallLists = gl_save_CallLists;
  301.    ctx->Save.Clear = gl_save_Clear;
  302.    ctx->Save.ClearAccum = gl_save_ClearAccum;
  303.    ctx->Save.ClearColor = gl_save_ClearColor;
  304.    ctx->Save.ClearDepth = gl_save_ClearDepth;
  305.    ctx->Save.ClearIndex = gl_save_ClearIndex;
  306.    ctx->Save.ClearStencil = gl_save_ClearStencil;
  307.    ctx->Save.ClipPlane = gl_save_ClipPlane;
  308.    ctx->Save.Color4f = gl_save_Color4f;
  309.    ctx->Save.Color4ub = gl_save_Color4ub;
  310.    ctx->Save.ColorMask = gl_save_ColorMask;
  311.    ctx->Save.ColorMaterial = gl_save_ColorMaterial;
  312.    ctx->Save.ColorPointer = gl_ColorPointer;
  313.    ctx->Save.CopyPixels = gl_save_CopyPixels;
  314.    ctx->Save.CopyTexImage1D = gl_save_CopyTexImage1D;
  315.    ctx->Save.CopyTexImage2D = gl_save_CopyTexImage2D;
  316.    ctx->Save.CopyTexSubImage1D = gl_save_CopyTexSubImage1D;
  317.    ctx->Save.CopyTexSubImage2D = gl_save_CopyTexSubImage2D;
  318.    ctx->Save.CopyTexSubImage3DEXT = gl_save_CopyTexSubImage3DEXT;
  319.    ctx->Save.CullFace = gl_save_CullFace;
  320.    ctx->Save.DeleteLists = gl_DeleteLists;   /* NOT SAVED */
  321.    ctx->Save.DeleteTextures = gl_DeleteTextures;  /* NOT SAVED */
  322.    ctx->Save.DepthFunc = gl_save_DepthFunc;
  323.    ctx->Save.DepthMask = gl_save_DepthMask;
  324.    ctx->Save.DepthRange = gl_save_DepthRange;
  325.    ctx->Save.Disable = gl_save_Disable;
  326.    ctx->Save.DisableClientState = gl_DisableClientState;  /* NOT SAVED */
  327.    ctx->Save.DrawArrays = gl_save_DrawArrays;
  328.    ctx->Save.DrawBuffer = gl_save_DrawBuffer;
  329.    ctx->Save.DrawElements = gl_save_DrawElements;
  330.    ctx->Save.DrawPixels = gl_DrawPixels;   /* SPECIAL CASE */
  331.    ctx->Save.EdgeFlag = gl_save_EdgeFlag;
  332.    ctx->Save.EdgeFlagPointer = gl_EdgeFlagPointer;
  333.    ctx->Save.Enable = gl_save_Enable;
  334.    ctx->Save.EnableClientState = gl_EnableClientState;   /* NOT SAVED */
  335.    ctx->Save.End = gl_save_End;
  336.    ctx->Save.EndList = gl_EndList;   /* NOT SAVED */
  337.    ctx->Save.EvalCoord1f = gl_save_EvalCoord1f;
  338.    ctx->Save.EvalCoord2f = gl_save_EvalCoord2f;
  339.    ctx->Save.EvalMesh1 = gl_save_EvalMesh1;
  340.    ctx->Save.EvalMesh2 = gl_save_EvalMesh2;
  341.    ctx->Save.EvalPoint1 = gl_save_EvalPoint1;
  342.    ctx->Save.EvalPoint2 = gl_save_EvalPoint2;
  343.    ctx->Save.FeedbackBuffer = gl_FeedbackBuffer;   /* NOT SAVED */
  344.    ctx->Save.Finish = gl_Finish;   /* NOT SAVED */
  345.    ctx->Save.Flush = gl_Flush;   /* NOT SAVED */
  346.    ctx->Save.Fogfv = gl_save_Fogfv;
  347.    ctx->Save.FrontFace = gl_save_FrontFace;
  348.    ctx->Save.Frustum = gl_save_Frustum;
  349.    ctx->Save.GenLists = gl_GenLists;   /* NOT SAVED */
  350.    ctx->Save.GenTextures = gl_GenTextures;   /* NOT SAVED */
  351.  
  352.    /* NONE OF THESE COMMANDS ARE COMPILED INTO DISPLAY LISTS */
  353.    ctx->Save.GetBooleanv = gl_GetBooleanv;
  354.    ctx->Save.GetClipPlane = gl_GetClipPlane;
  355.    ctx->Save.GetDoublev = gl_GetDoublev;
  356.    ctx->Save.GetError = gl_GetError;
  357.    ctx->Save.GetFloatv = gl_GetFloatv;
  358.    ctx->Save.GetIntegerv = gl_GetIntegerv;
  359.    ctx->Save.GetString = gl_GetString;
  360.    ctx->Save.GetLightfv = gl_GetLightfv;
  361.    ctx->Save.GetLightiv = gl_GetLightiv;
  362.    ctx->Save.GetMapdv = gl_GetMapdv;
  363.    ctx->Save.GetMapfv = gl_GetMapfv;
  364.    ctx->Save.GetMapiv = gl_GetMapiv;
  365.    ctx->Save.GetMaterialfv = gl_GetMaterialfv;
  366.    ctx->Save.GetMaterialiv = gl_GetMaterialiv;
  367.    ctx->Save.GetPixelMapfv = gl_GetPixelMapfv;
  368.    ctx->Save.GetPixelMapuiv = gl_GetPixelMapuiv;
  369.    ctx->Save.GetPixelMapusv = gl_GetPixelMapusv;
  370.    ctx->Save.GetPointerv = gl_GetPointerv;
  371.    ctx->Save.GetPolygonStipple = gl_GetPolygonStipple;
  372.    ctx->Save.GetTexEnvfv = gl_GetTexEnvfv;
  373.    ctx->Save.GetTexEnviv = gl_GetTexEnviv;
  374.    ctx->Save.GetTexGendv = gl_GetTexGendv;
  375.    ctx->Save.GetTexGenfv = gl_GetTexGenfv;
  376.    ctx->Save.GetTexGeniv = gl_GetTexGeniv;
  377.    ctx->Save.GetTexImage = gl_GetTexImage;
  378.    ctx->Save.GetTexLevelParameterfv = gl_GetTexLevelParameterfv;
  379.    ctx->Save.GetTexLevelParameteriv = gl_GetTexLevelParameteriv;
  380.    ctx->Save.GetTexParameterfv = gl_GetTexParameterfv;
  381.    ctx->Save.GetTexParameteriv = gl_GetTexParameteriv;
  382.  
  383.    ctx->Save.Hint = gl_save_Hint;
  384.    ctx->Save.IndexMask = gl_save_IndexMask;
  385.    ctx->Save.Indexf = gl_save_Indexf;
  386.    ctx->Save.Indexi = gl_save_Indexi;
  387.    ctx->Save.IndexPointer = gl_IndexPointer;
  388.    ctx->Save.InitNames = gl_save_InitNames;
  389.    ctx->Save.InterleavedArrays = gl_save_InterleavedArrays;
  390.    ctx->Save.IsEnabled = gl_IsEnabled;   /* NOT SAVED */
  391.    ctx->Save.IsTexture = gl_IsTexture;   /* NOT SAVED */
  392.    ctx->Save.IsList = gl_IsList;   /* NOT SAVED */
  393.    ctx->Save.LightModelfv = gl_save_LightModelfv;
  394.    ctx->Save.Lightfv = gl_save_Lightfv;
  395.    ctx->Save.LineStipple = gl_save_LineStipple;
  396.    ctx->Save.LineWidth = gl_save_LineWidth;
  397.    ctx->Save.ListBase = gl_save_ListBase;
  398.    ctx->Save.LoadMatrixf = gl_save_LoadMatrixf;
  399.    ctx->Save.LoadName = gl_save_LoadName;
  400.    ctx->Save.LogicOp = gl_save_LogicOp;
  401.    ctx->Save.Map1f = gl_save_Map1f;
  402.    ctx->Save.Map2f = gl_save_Map2f;
  403.    ctx->Save.MapGrid1f = gl_save_MapGrid1f;
  404.    ctx->Save.MapGrid2f = gl_save_MapGrid2f;
  405.    ctx->Save.Materialfv = gl_save_Materialfv;
  406.    ctx->Save.MatrixMode = gl_save_MatrixMode;
  407.    ctx->Save.MultMatrixf = gl_save_MultMatrixf;
  408.    ctx->Save.NewList = gl_save_NewList;
  409.    ctx->Save.Normal3f = gl_save_Normal3f;
  410.    ctx->Save.Normal3fv = gl_save_Normal3fv;
  411.    ctx->Save.NormalPointer = gl_NormalPointer;  /* NOT SAVED */
  412.    ctx->Save.PassThrough = gl_save_PassThrough;
  413.    ctx->Save.PixelMapfv = gl_save_PixelMapfv;
  414.    ctx->Save.PixelStorei = gl_PixelStorei;   /* NOT SAVED */
  415.    ctx->Save.PixelTransferf = gl_save_PixelTransferf;
  416.    ctx->Save.PixelZoom = gl_save_PixelZoom;
  417.    ctx->Save.PointSize = gl_save_PointSize;
  418.    ctx->Save.PolygonMode = gl_save_PolygonMode;
  419.    ctx->Save.PolygonOffset = gl_save_PolygonOffset;
  420.    ctx->Save.PolygonStipple = gl_save_PolygonStipple;
  421.    ctx->Save.PopAttrib = gl_save_PopAttrib;
  422.    ctx->Save.PopClientAttrib = gl_PopClientAttrib;  /* NOT SAVED */
  423.    ctx->Save.PopMatrix = gl_save_PopMatrix;
  424.    ctx->Save.PopName = gl_save_PopName;
  425.    ctx->Save.PrioritizeTextures = gl_save_PrioritizeTextures;
  426.    ctx->Save.PushAttrib = gl_save_PushAttrib;
  427.    ctx->Save.PushClientAttrib = gl_PushClientAttrib;  /* NOT SAVED */
  428.    ctx->Save.PushMatrix = gl_save_PushMatrix;
  429.    ctx->Save.PushName = gl_save_PushName;
  430.    ctx->Save.RasterPos4f = gl_save_RasterPos4f;
  431.    ctx->Save.ReadBuffer = gl_save_ReadBuffer;
  432.    ctx->Save.ReadPixels = gl_ReadPixels;   /* NOT SAVED */
  433.    ctx->Save.Rectf = gl_Rectf;   /* SEE gl_Rectf() CODE */
  434.    ctx->Save.RenderMode = gl_RenderMode;   /* NOT SAVED */
  435.    ctx->Save.Rotatef = gl_save_Rotatef;
  436.    ctx->Save.Scalef = gl_save_Scalef;
  437.    ctx->Save.Scissor = gl_save_Scissor;
  438.    ctx->Save.SelectBuffer = gl_SelectBuffer;   /* NOT SAVED */
  439.    ctx->Save.ShadeModel = gl_save_ShadeModel;
  440.    ctx->Save.StencilFunc = gl_save_StencilFunc;
  441.    ctx->Save.StencilMask = gl_save_StencilMask;
  442.    ctx->Save.StencilOp = gl_save_StencilOp;
  443.    ctx->Save.TexCoord4f = gl_save_TexCoord4f;
  444.    ctx->Save.TexCoordPointer = gl_TexCoordPointer;  /* NOT SAVED */
  445.    ctx->Save.TexEnvfv = gl_save_TexEnvfv;
  446.    ctx->Save.TexGenfv = gl_save_TexGenfv;
  447.    ctx->Save.TexImage1D = gl_save_TexImage1D;
  448.    ctx->Save.TexImage2D = gl_save_TexImage2D;
  449.    ctx->Save.TexImage3DEXT = gl_save_TexImage3DEXT;
  450.    ctx->Save.TexSubImage1D = gl_save_TexSubImage1D;
  451.    ctx->Save.TexSubImage2D = gl_save_TexSubImage2D;
  452.    ctx->Save.TexSubImage3DEXT = gl_save_TexSubImage3DEXT;
  453.    ctx->Save.TexParameterfv = gl_save_TexParameterfv;
  454.    ctx->Save.Translatef = gl_save_Translatef;
  455.    ctx->Save.Vertex4f = gl_save_Vertex4f;
  456.    ctx->Save.VertexPointer = gl_VertexPointer;  /* NOT SAVED */
  457.    ctx->Save.Viewport = gl_save_Viewport;
  458.  
  459.    /* GL_SAVE_MESA_window_pos extension */
  460.    ctx->Save.WindowPos4fMESA = gl_save_WindowPos4fMESA;
  461.  
  462.    /* GL_MESA_resize_buffers extension */
  463.    ctx->Save.ResizeBuffersMESA = gl_ResizeBuffersMESA;
  464.  
  465.  
  466.    /* TODO: remove this someday */
  467.    check_pointers( &ctx->Exec );
  468.    check_pointers( &ctx->Save );
  469. }
  470.  
  471.